﻿// -------------------------------------------------------------------------
//    @FileName         :    main.cpp
//    @Author           :    gaoyi
//    @Date             :    2025/1/20
//    @Email            :    445267987@qq.com
//    @Module           :    LieRen Bag System Unit Tests
//
// -------------------------------------------------------------------------

#include <gtest/gtest.h>
#include <iostream>
#include <string>
#include <memory>
#include "BagSystemTestBase.h"

/**
 * @brief 猎人背包系统单元测试主入口
 * 
 * 此测试程序对LieRen项目中的背包系统进行全面的单元测试，包括：
 * - 背包页面管理测试
 * - 背包操作管理器测试
 * - 物品添加、删除、移动测试
 * - 背包服务层接口测试
 * - 物品描述和创建测试
 * - 边界条件和异常处理测试
 * - 性能压力测试
 * 
 * 测试覆盖了背包系统的核心功能，确保系统的稳定性和可靠性。
 */
int main(int argc, char **argv) {
    ::testing::InitGoogleTest(&argc, argv);
    
    // 输出测试信息
    std::cout << "\n=== 猎人背包系统单元测试 ===" << std::endl;
    std::cout << "测试范围: " << std::endl;
    std::cout << "  - 背包页面管理 (NFBagPage)" << std::endl;
    std::cout << "  - 背包操作管理 (NFBagPageOpMgr)" << std::endl;
    std::cout << "  - 背包服务层 (NFServicePackage)" << std::endl;
    std::cout << "  - 物品管理 (NFGridItem)" << std::endl;
    std::cout << "  - 边界条件与异常处理" << std::endl;
    std::cout << "  - 性能压力测试" << std::endl;
    std::cout << "==============================\n" << std::endl;
    
    try {
        // 运行所有测试
        int result = RUN_ALL_TESTS();
        
        // 输出测试结果统计
        std::cout << "\n=== 测试完成 ===" << std::endl;
        if (result == 0) {
            std::cout << "所有测试通过！✓" << std::endl;
        } else {
            std::cout << "有测试失败！✗" << std::endl;
        }
        
        return result;
    } catch (const std::exception& e) {
        std::cerr << "测试运行时发生异常: " << e.what() << std::endl;
        return -1;
    } catch (...) {
        std::cerr << "测试运行时发生未知异常" << std::endl;
        return -1;
    }
} 